package com.vhall.component.controller.room.facade;

import com.vhall.component.entity.inav.vo.InavRoomGetRespVO;
import com.vhall.component.entity.room.vo.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;

import java.util.List;

/**
 * admin端房间管理
 *
 * @author guoxin.wang
 * @date 2021/7/29 20:10
 */
@FeignClient(value = "RoomAdminFacade", path = "/v4/room/admin")
public interface RoomAdminFacade {

    /**
     * 直播间列表--直播大厅列表，这里的数据都是审核结束之后的
     *
     * @param reqVO 参数
     * @return 直播间列表
     */
    @GetMapping(value = "/list")
    RoomAdminListRspVO list(@Validated RoomAdminListReqVO reqVO);

    /**
     * 直播审核列表
     *
     * @param reqVO 参数
     * @return 直播间列表
     */
    @PostMapping(value = "/examine_list/live_broadcast")
    RoomAdminListRspVO examineListLive(@Validated RoomAdminListReqVO reqVO);

    /**
     * 短视频审核列表
     *
     * @param reqVO 参数
     * @return 直播间列表
     */
    @PostMapping(value = "/examine_list/short_video")
    RoomAdminListRspVO examineListVideo(@Validated RoomAdminListReqVO reqVO);

    /**
     * 通过直播间id获取直播间详情信息
     *
     * @param reqVO 参数
     * @return 直播间详情信息
     */
    @PostMapping(value = "/get")
    InavRoomGetRespVO getRoomInfo(@Validated RoomAdminGetInfoVO reqVO);

    /**
     * 删除房间信息
     *
     * @param reqVO 参数
     * @return 被删除的房间id组
     */
    @GetMapping(value = "/delete")
    List<String> delete(@Validated RoomAdminDelVO reqVO);

    /**
     * 更新房间信息
     *
     * @param reqVO 参数
     * @return Boolean
     */
    @PostMapping(value = "/update")
    Boolean update(@Validated CreateRoomNewVO reqVO);

    /**
     * 获取--php中直接返回了成功
     *
     * @return 返回值
     */

    @PostMapping(value = "/search-status")
    Boolean searchStatus();


    /**
     * 设为热点
     */
    @PostMapping(value = "/set_as_hotspot")
    Boolean setAsHotspot(@Validated RoomOperationStatusVO vo);

    /**
     * 推荐到优理宝首页
     */
    @PostMapping(value = "/recommended_home_page")
    Boolean recommendedHomePage(@Validated RoomOperationStatusVO vo);

    /**
     * 上下架操作
     */
    @PostMapping(value = "/load_or_unload")
    Boolean loadOrUnload(@Validated RoomOperationStatusVO vo);

    /**
     * 置顶操作
     */
    @PostMapping(value = "/top_room")
    Boolean topRoom(@Validated RoomOperationStatusVO vo);

    /**
     * 保存暖场视频
     *
     * @param reqVO 参数
     * @return Boolean
     */
    @PostMapping(value = "/save-warm")
    Boolean saveWarm(@Validated WarmVO reqVO);

}
